iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
自我挑戰組

Practice again& again.系列 第 18

Android - Style Resources

  • 分享至 

  • xImage
  •  

Android - Style Resources 樣式資源的定義與使用

定義 Style Resources

  • 說明:若有多種元素屬性需要重複使用,可將其定義為 Style 資源以共用。

  • 建立:右鍵點選 res/values →「New」→「Values resource file」→ 出現「New Resource File」彈出視窗,命名為「styles」,其餘欄位保持預設:
    01
    02

  • Style 樣式資源定義語法

    <style 
        name="樣式資源ID"
        parent="@style/parent樣式資源ID">
        <item name="屬性名稱1">屬性值1</item>
        <item name="屬性名稱2">屬性值2</item>
        ...
    </style>
    
  • 定義 Style 資源範例
    此處將套用 parent TextView 的樣式,並設定文字大小、文字顏色、文字粗體、背景顏色等屬性值:

    <style name="TitleText" parent="@style/Widget.AppCompat.TextView">
        <item name="android:textSize">40sp</item>
        <item name="android:textColor">@color/color_000</item>
        <item name="android:textStyle">bold</item>
        <item name="android:background">@color/color_00FF0000</item>
    </style>
    

使用

Layout XML

  • 取得 Style 資源:@style/樣式資源ID,如:@style/TitleText

  • 使用:開啟 activity_main.xml,新增 TextView 樣式屬性 style

    <androidx.constraintlayout.widget.ConstraintLayout
        ...
        <TextView
            ...
            style="@style/TitleText"
            ...  />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    確保 MainActivity.kt 須注入layout: setContentView(R.layout.activity_main)

  • 樣式覆蓋:
    注意如果在 TextView 中有設定與 style 相同的元素屬性,則 style 的樣式會被覆蓋。例如重複給予 android:textSize 屬性值,則會覆蓋 style 中的 android:textSize 設定值。如下圖所示:

    03

  • 預覽:套用的樣式預覽(無覆蓋樣式情況)
    04

  • 啟動專案:套用的樣式呈現
    05


上一篇
Android - Drawable Resources
下一篇
Android - Theme Resources
系列文
Practice again& again.30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言